package com.wrupple.muba.common.client.activity;

import java.util.Map;

import com.google.gwt.activity.shared.Activity;
import com.google.gwt.core.client.RunAsyncCallback;
import com.wrupple.muba.common.shared.StateTransition;

/**
 * The application loader is used by the desktop to bootstrap an appllication's
 * activities into the desktop when the user invokes it.
 * 
 * @author japi
 * 
 */
public interface MubaWebappLoader extends RunAsyncCallback {

	/**
	 * 
	 * @return a map of this webapps Activities and their id's
	 */
	Map<String, Activity> getActivities();
	
	String  getWelcomeActivityId();


	/**
	 * @param factory
	 * @param callback
	 */
	void loadActivity(ApplicationActivityFactory factory,
			StateTransition<Activity> callback);

}
